package Juego.modelo.Edificio.Gobierno;

import Juego.control.rentable;
import Juego.modelo.Amigo.Amigo;
import Juego.modelo.Edificio.Edificio;
import Juego.modelo.Recurso.Recurso;

abstract public class EdificioGobierno extends Edificio implements rentable {
	protected int tope;	
	protected int ganarDinero;
	protected int ganarMadera;
	protected int turnos;
	protected Recurso Produccion;
	protected int contratado;
	protected int cantidadGobernadores;
	protected String []personaAContratar;
	protected int nPersonaContratar;
	protected Amigo [] ListaContratados;
	protected int curAmigo;
	
	public Recurso getProduccion() {
		return Produccion;
	}
	
	public int getCurAmigo() {
		return curAmigo;
	}
	public void setCurAmigo(int curAmigo) {
		this.curAmigo = curAmigo;
	}
	public boolean findAmigo( Amigo A ){
		for( Amigo migo : ListaContratados ) if( A.equals( migo ) ) return true;
		return false;
	}
	public void addAmigo( Amigo A ){
		ListaContratados[ curAmigo ] = A; 
		curAmigo++;
	}
	
	public boolean canAdd( ){
		return curAmigo < cantidadGobernadores ;
	}
	
	public Recurso recolectar() {
		// TODO Auto-generated method stub
		if( getEstado() != 0 || curAmigo != cantidadGobernadores ) return new Recurso( -1 , -1 ,-1 , -1 );
		iniciaEspera();
		return Produccion;
	}
	
	public void iniciaEspera(){		
		setEstado(getTurnos());
	}
	
	public void actualizaTurno(){
		int  aux = 0;
		
		aux = getEstado();
		if (aux != 0)
			aux--;
		setEstado(aux);
	}
//	
//	public void contratar(String persona){
//		int i = 0;
//		
//		while (i < cantidadGobernadores){
//			if (persona.equals(personaAContratar[i])) break;
//			i++;
//		}
//		
//		contratado = 1;
//		nPersonaContratar = i;
//	} 
//	
//	public void despedir(){
//		contratado = 0;
//		nPersonaContratar = 0;
//	}
	
		
	public int getTope() {
		return tope;
	}

	public void setTope(int tope) {
		this.tope = tope;
	}

	public int getGanarDinero() {
		return ganarDinero;
	}

	public void setGanarDinero(int ganarDinero) {
		this.ganarDinero = ganarDinero;
	}

	public int getGanarMadera() {
		return ganarMadera;
	}

	public void setGanarMadera(int ganarMadera) {
		this.ganarMadera = ganarMadera;
	}

	public int getTurnos() {
		return turnos;
	}

	public void setTurnos(int turnos) {
		this.turnos = turnos;
	}

	public int getEstado() {
		if( cantidadGobernadores != curAmigo ) return 1;
		return estado;
	}

	public void setEstado(int estado) {
		this.estado = estado;
	}

	public int getContratado() {
		return contratado;
	}

	public void setContratado(int contratado) {
		this.contratado = contratado;
	}

	public int getCantidadGobernadores() {
		return cantidadGobernadores;
	}

	public void setCantidadGobernadores(int cantidadGobernadores) {
		this.cantidadGobernadores = cantidadGobernadores;
	}

	public String[] getPersonaAContratar() {
		return personaAContratar;
	}

	public void setPersonaAContratar(String[] personaAContratar) {
		this.personaAContratar = personaAContratar;
	}

	public int getnPersonaContratar() {
		return nPersonaContratar;
	}

	public void setnPersonaContratar(int nPersonaContratar) {
		this.nPersonaContratar = nPersonaContratar;
	}

	
	
	
}
